CREATE DATABASE pinhao ENCODING = 'UTF8';
--

-- *** HABILITANDO A OPCAO DE UTILIZAR A LINGUAGEM plpgsql ***
-- ***      OBJETIVO: criacao das triggers_functions       ***
-- ***               (Somente usuario root)                ***
--CREATE LANGUAGE plpgsql;


-- *********************
-- CRIANDO USUARIOS
-- *********************

CREATE USER sa_sentinela
  PASSWORD 'sa_sentinela'
  NOCREATEDB NOCREATEUSER;
  
CREATE USER sa_sentinela_client
  PASSWORD 'sa_sentinela_client'
  NOCREATEDB NOCREATEUSER;

GRANT ALL ON DATABASE pinhao TO sa_sentinela WITH GRANT OPTION;
--
-- PostgreSQL database dump
--

SET client_encoding = 'UTF8';
SET check_function_bodies = false;

-- *********************
-- CRIANDO SCHEMA
-- *********************
CREATE SCHEMA sentinela AUTHORIZATION sa_sentinela;

ALTER USER sa_sentinela SET search_path=sentinela;
ALTER USER sa_sentinela SET client_encoding=UTF8;
ALTER USER sa_sentinela_client SET search_path=sentinela;
ALTER USER sa_sentinela_client SET client_encoding=UTF8;

SET SESSION AUTHORIZATION 'sa_sentinela';

--REVOKE ALL ON SCHEMA sentinela FROM PUBLIC;
GRANT ALL ON SCHEMA sentinela TO sa_sentinela WITH GRANT OPTION;
GRANT USAGE ON SCHEMA sentinela TO sa_sentinela_client;

SET search_path = sentinela;

SET SESSION AUTHORIZATION 'sa_sentinela';


-- *********************
-- CRIANDO SEQUENCES
-- *********************

CREATE SEQUENCE sentinela.auditoriacontrole_codauditoria_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;

CREATE SEQUENCE sentinela.enderecoservidor_codservidor_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;

CREATE SEQUENCE sentinela.excecao_codexcecao_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;

CREATE SEQUENCE sentinela.funcaosistema_codfuncao_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;

CREATE SEQUENCE sentinela.funcaosistemaauxiliar_codfuncaoauxiliar_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;

CREATE SEQUENCE sentinela.grupo_codgrupo_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;

CREATE SEQUENCE sentinela.logauditoria_codlog_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1
    CYCLE;

--REVOKE ALL ON TABLE sentinela.logauditoria_codlog_seq FROM PUBLIC;
GRANT SELECT,UPDATE ON TABLE sentinela.logauditoria_codlog_seq TO sa_sentinela_client;


CREATE SEQUENCE sentinela.mensagem_idmensagem_seq
    START WITH 1000
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;

CREATE SEQUENCE sentinela.restricaofuncao_codrestricaofuncao_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;

CREATE SEQUENCE sentinela.restricaogrupo_codrestricaogrupo_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;

CREATE SEQUENCE sentinela.restricaohorario_codrestricao_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;

CREATE SEQUENCE sentinela.restricaosistema_codrestricaosistema_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;
    
CREATE SEQUENCE sentinela.restricaoip_codrestricaoip_seq
  	INCREMENT BY 1
  	NO MAXVALUE
  	NO MINVALUE
  	CACHE 1;
  	
--REVOKE ALL ON TABLE sentinela.restricaoip_codrestricaoip_seq FROM PUBLIC;
GRANT SELECT,UPDATE ON TABLE sentinela.restricaoip_codrestricaoip_seq TO sa_sentinela_client;

CREATE SEQUENCE sentinela.sistema_codsistema_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;

CREATE SEQUENCE sentinela.usuario_codusuario_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;


CREATE SEQUENCE sentinela.loglogin_codlog_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;

--REVOKE ALL ON TABLE sentinela.loglogin_codlog_seq FROM PUBLIC;
GRANT SELECT,UPDATE ON TABLE sentinela.loglogin_codlog_seq TO sa_sentinela_client;

CREATE SEQUENCE sentinela.logusuariogrupo_codlog_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;
    
--REVOKE ALL ON TABLE sentinela.logusuariogrupo_codlog_seq FROM PUBLIC;
GRANT SELECT, INSERT, UPDATE ON TABLE sentinela.logusuariogrupo_codlog_seq TO sa_sentinela_client;    

CREATE SEQUENCE sentinela.loggrupofuncao_codlog_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;
    
CREATE SEQUENCE sentinela.loggruposistema_codlog_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;

CREATE SEQUENCE sentinela.metodo_codmetodo_seq
	INCREMENT BY 1
	NO MINVALUE
	NO MAXVALUE
	CACHE 1;

CREATE SEQUENCE sentinela.loggrupometodo_codlog_seq
	INCREMENT BY 1
	NO MINVALUE
	NO MAXVALUE
	CACHE 1;


-- *********************
-- CRIANDO TABELAS
-- *********************

CREATE TABLE sentinela.auditoriacontrole (
    codsistema integer NOT NULL,
    codauditoria integer DEFAULT nextval('sentinela.auditoriacontrole_codauditoria_seq'::text) NOT NULL,
    codusuario integer,
    datahoraoperacao timestamp without time zone,
    ativacao boolean
);
GRANT SELECT ON TABLE sentinela.auditoriacontrole TO sa_sentinela_client;


CREATE TABLE sentinela.enderecoservidor (
    codsistema integer NOT NULL,
    codservidor integer DEFAULT nextval('sentinela.enderecoservidor_codservidor_seq'::text) NOT NULL,
    urlservidor character varying(255)
);
GRANT SELECT ON TABLE sentinela.enderecoservidor TO sa_sentinela_client;


CREATE TABLE sentinela.excecao (
    codexcecao integer DEFAULT nextval('sentinela.excecao_codexcecao_seq'::text) NOT NULL,
    codsistema integer NOT NULL,
    nomeexcecao character varying(250),
    descexcecao character varying(60)
);
GRANT SELECT ON TABLE sentinela.excecao TO sa_sentinela_client;


CREATE TABLE sentinela.funcaogruposistema (
    codsistema integer NOT NULL,
    codgrupo integer NOT NULL,
    codfuncao integer NOT NULL,
    operacoesgrupo character varying(20)
);
GRANT SELECT ON TABLE sentinela.funcaogruposistema TO sa_sentinela_client;


CREATE TABLE sentinela.funcaosistema (
    codsistema integer NOT NULL,
    codfuncao integer DEFAULT nextval('sentinela.funcaosistema_codfuncao_seq'::text) NOT NULL,
    nomefuncao character varying(40),
    nomeprograma character varying(250),
    descrfuncao character varying(60),
    numordemmenu integer,
    codfuncaopai integer,
    operacoesrelevantes character varying(20),
    indicativofuncaopublica boolean,
    indicativobloqueio boolean,
    funcaogenerica boolean,
    indicativojuncaomenus boolean
);
GRANT SELECT ON TABLE sentinela.funcaosistema TO sa_sentinela_client;


CREATE TABLE sentinela.funcaosistemaauxiliar (
    codfuncaoauxiliar integer DEFAULT nextval('sentinela.funcaosistemaauxiliar_codfuncaoauxiliar_seq'::text) NOT NULL,
    codfuncao integer NOT NULL,
    nomefuncao character varying(255),
    descfuncao character varying(60),
    codsistema integer NOT NULL
);
GRANT SELECT ON TABLE sentinela.funcaosistemaauxiliar TO sa_sentinela_client;


CREATE TABLE sentinela.grupo (
    codgrupo integer DEFAULT nextval('sentinela.grupo_codgrupo_seq'::text) NOT NULL,
    nomegrupo character varying(127),
    descrgrupo character varying(255),
    codgrupomanutencao integer,
    infoprivilegiadas boolean,
    grupomodelo boolean
);
GRANT SELECT ON TABLE sentinela.grupo TO sa_sentinela_client;


CREATE TABLE sentinela.gruposistema (
    codgrupo integer NOT NULL,
    codsistema integer NOT NULL,
    limiteusuarios integer,
    indicativobloqueiogruposistema boolean
);
GRANT SELECT ON TABLE sentinela.gruposistema TO sa_sentinela_client;


CREATE TABLE sentinela.icone (
    codicone integer NOT NULL,
    figura character varying(255)
);
GRANT SELECT ON TABLE sentinela.icone TO sa_sentinela_client;


CREATE TABLE sentinela.iconefuncao (
    codfuncao integer NOT NULL,
    codsistema integer NOT NULL,
    codicone integer NOT NULL,
    ordem integer
);
GRANT SELECT ON TABLE sentinela.iconefuncao TO sa_sentinela_client;


CREATE TABLE sentinela.logauditoria (
    codsistema integer NOT NULL,
    codlog integer DEFAULT nextval('sentinela.logauditoria_codlog_seq'::text) NOT NULL,
    codusuario integer,
    datahora timestamp without time zone,
    completado boolean,
    funcaochamada character varying(255)
);
GRANT INSERT,SELECT,UPDATE ON TABLE sentinela.logauditoria TO sa_sentinela_client;


CREATE TABLE sentinela.mensagem (
    idmensagem integer DEFAULT nextval('sentinela.mensagem_idmensagem_seq'::text) NOT NULL,
    codusuario integer,
    nome character varying(20),
    mensagem text,
    datainicio date,
    datafim date,
    datacadastro date,
    codgrupomanutencao integer,
    ativo boolean
);
GRANT SELECT ON TABLE sentinela.mensagem TO sa_sentinela_client;


CREATE TABLE sentinela.mensagemgrupo (
    codgrupo integer NOT NULL,
    idmensagem integer NOT NULL
);
GRANT SELECT ON TABLE sentinela.mensagemgrupo TO sa_sentinela_client;


CREATE TABLE sentinela.mensagemsistema (
    idmensagem integer NOT NULL,
    codsistema integer NOT NULL
);
GRANT SELECT ON TABLE sentinela.mensagemsistema TO sa_sentinela_client;


CREATE TABLE sentinela.operacaosistema (
    codsistema integer NOT NULL,
    tipooperacao character(1) NOT NULL,
    nomeoperacao character varying(30)
);
GRANT SELECT ON TABLE sentinela.operacaosistema TO sa_sentinela_client;


CREATE TABLE sentinela.restricaofuncao (
    codrestricao integer NOT NULL,
    codrestricaofuncao integer DEFAULT nextval('sentinela.restricaofuncao_codrestricaofuncao_seq'::text) NOT NULL,
    codfuncao integer,
    horainicio integer,
    horafim integer,
    diasemana_nor boolean,
    diasemana_sab boolean,
    diasemana_dom boolean,
    diasemana_fer boolean
);
GRANT SELECT ON TABLE sentinela.restricaofuncao TO sa_sentinela_client;


CREATE TABLE sentinela.restricaogrupo (
    codrestricao integer NOT NULL,
    codrestricaogrupo integer DEFAULT nextval('sentinela.restricaogrupo_codrestricaogrupo_seq'::text) NOT NULL,
    codgrupo integer,
    horainicio integer,
    horafim integer,
    diasemana_nor boolean,
    diasemana_sab boolean,
    diasemana_dom boolean,
    diasemana_fer boolean
);
GRANT SELECT ON TABLE sentinela.restricaogrupo TO sa_sentinela_client;


CREATE TABLE sentinela.restricaohorario (
    codrestricao integer DEFAULT nextval('sentinela.restricaohorario_codrestricao_seq'::text) NOT NULL,
    codsistema integer,
    datainicio date,
    datafim date,
    tipo smallint,
    ativo boolean
);
GRANT SELECT ON TABLE sentinela.restricaohorario TO sa_sentinela_client;


CREATE TABLE sentinela.restricaoip
(
  codrestricaoip integer DEFAULT nextval('sentinela.restricaoip_codrestricaoip_seq'::text) NOT NULL,
  mascarasubrede cidr NOT NULL,
  ativa bool
);
GRANT SELECT ON TABLE sentinela.restricaoip TO sa_sentinela_client;


CREATE TABLE sentinela.restricaoipgrupo
(
  codrestricaoip int4 NOT NULL,
  codgrupo int4 NOT NULL,
  codsistema int4 NOT NULL
);
GRANT SELECT ON TABLE sentinela.restricaoipgrupo TO sa_sentinela_client;


CREATE TABLE sentinela.restricaoipsistema
(
  codrestricaoip int4 NOT NULL,
  codsistema int4 NOT NULL
);
GRANT SELECT ON TABLE sentinela.restricaoipsistema TO sa_sentinela_client;


CREATE TABLE sentinela.restricaosistema (
    codrestricao integer NOT NULL,
    codrestricaosistema integer DEFAULT nextval('sentinela.restricaosistema_codrestricaosistema_seq'::text) NOT NULL,
    horainicio integer,
    horafim integer,
    diasemana_nor boolean,
    diasemana_sab boolean,
    diasemana_dom boolean,
    diasemana_fer boolean
);
GRANT SELECT ON TABLE sentinela.restricaosistema TO sa_sentinela_client;


CREATE TABLE sentinela.sentinelaparametros (
    codsistema integer,
    senhapadrao character varying(10),
    ambiente character varying(30),
    maximosenhaserradas integer,
    tempoexpiracaosenha integer,
    tempobloqueioinatividade integer,
    telefonecentralatendimento character varying(100),
    mailorigem character varying(30),
    senhamailorigem character varying(30),
    mailserver character varying(30),
    mailassunto character varying(60),
    mensagemcadastrousuario character varying(1000),
    mensagemtrocasenha character varying(1000),
    urlselosentinela character varying(255),
    mensagemselosentinela character varying(1000),
    indicativoenvioemail boolean,
    indicativosenhaaleatoria boolean
);
GRANT SELECT ON TABLE sentinela.sentinelaparametros TO sa_sentinela_client;


CREATE TABLE sentinela.sistema (
    codsistema integer DEFAULT nextval('sentinela.sistema_codsistema_seq'::text) NOT NULL,
    siglasistema character(3),
    nomesistema character varying(40),
    descrsistema character varying(60),
    tipoauditoria smallint,
    responsavel integer,
    textoresponsavel text,
    indicativoacessopublico boolean,
    indicativoauditoria boolean,
    indicativotimoneiro boolean
);
GRANT SELECT ON TABLE sentinela.sistema TO sa_sentinela_client;


CREATE TABLE sentinela.usuario (
    codusuario integer DEFAULT nextval('sentinela.usuario_codusuario_seq'::text) NOT NULL,
    nomeusuario character varying(60),
    emailusuario character varying(50),
    identidadeusuario character varying(10),
    cpfusuario character varying(11) unique,
    datacadastrousuario date,
    tentativassenhaerrada integer,
    senhausuario character varying(100),
    datatrocasenha date,
    telefone character varying(20),
    datahorasenhaerrada timestamp without time zone,
    indicativousuarioativo boolean,
    root boolean,
    indicativobloqueio boolean,
    loginusuario character varying(40)
);
GRANT SELECT,UPDATE ON TABLE sentinela.usuario TO sa_sentinela_client;


CREATE TABLE sentinela.usuariogrupo (
    codgrupo integer NOT NULL,
    codusuario integer NOT NULL
);
GRANT SELECT, INSERT, DELETE ON TABLE sentinela.usuariogrupo TO sa_sentinela_client;


CREATE TABLE sentinela.usuariosistema (
    codsistema integer NOT NULL,
    codusuario integer NOT NULL,
    datahoraultacesso timestamp without time zone,
    indicativobloqueiousuariosistema boolean
);
GRANT INSERT,SELECT,UPDATE ON TABLE sentinela.usuariosistema TO sa_sentinela_client;


CREATE TABLE sentinela.log_login (
    codsistema integer NOT NULL,
    codlog integer DEFAULT nextval('sentinela.loglogin_codlog_seq'::text) NOT NULL,
    codusuario integer,
    datahora timestamp without time zone,
    completado boolean
);
GRANT INSERT,SELECT,UPDATE ON TABLE sentinela.log_login TO sa_sentinela_client;


CREATE TABLE sentinela.log_usuario_grupo (
    codlog integer DEFAULT nextval('sentinela.logusuariogrupo_codlog_seq'::text) NOT NULL,
    codusuario integer NOT NULL,
    codgrupo integer NOT NULL,
    datahora timestamp without time zone NOT NULL,
    acesso boolean NOT NULL,
    autor integer NOT NULL
);
GRANT SELECT, INSERT ON TABLE sentinela.log_usuario_grupo TO sa_sentinela_client;


CREATE TABLE sentinela.log_grupo_funcao (
    codlog integer DEFAULT nextval('sentinela.loggrupofuncao_codlog_seq'::text) NOT NULL,
    codgrupo integer NOT NULL,
    codfuncao integer NOT NULL,
    codsistema integer NOT NULL,
    datahora timestamp without time zone NOT NULL,
    acesso boolean NOT NULL,
    autor integer NOT NULL
);


CREATE TABLE sentinela.log_grupo_sistema (
    codlog integer DEFAULT nextval('sentinela.loggruposistema_codlog_seq'::text) NOT NULL,
    codgrupo integer NOT NULL,
    codsistema integer NOT NULL,
    datahora timestamp without time zone NOT NULL,
    acesso boolean NOT NULL,
    autor integer NOT NULL
);


CREATE TABLE sentinela.log_grupo_metodo
(
  codlog int4 NOT NULL DEFAULT nextval('sentinela.loggrupometodo_codlog_seq'::text),
  codgrupo int4 NOT NULL,
  codmetodo int4 NOT NULL,
  codsistema int4 NOT NULL,
  datahora timestamp NOT NULL,
  acesso bool NOT NULL,
  autor int4 NOT NULL
);


CREATE TABLE sentinela.metodo
(
  codmetodo int4 NOT NULL DEFAULT nextval('sentinela.metodo_codmetodo_seq'::text),
  nomemetodo varchar(50),
  descmetodo varchar(255)
);
GRANT SELECT ON TABLE sentinela.metodo TO sa_sentinela_client;


CREATE TABLE sentinela.metodogruposistema
(
  codsistema int4 NOT NULL,
  codgrupo int4 NOT NULL,
  codmetodo int4 NOT NULL
);
GRANT SELECT ON TABLE sentinela.metodogruposistema TO sa_sentinela_client;


CREATE TABLE sentinela.cachesistema
(
  codsistema int4 NOT NULL,
  ultimaatualizacao TIMESTAMP
);
GRANT SELECT ON TABLE sentinela.cachesistema TO sa_sentinela_client;

CREATE TABLE sentinela.cacheusuario
(
  codusuario int4 NOT NULL,
  ultimaatualizacao TIMESTAMP
);
GRANT SELECT, UPDATE, INSERT ON TABLE sentinela.cacheusuario TO sa_sentinela_client;

CREATE TABLE sentinela.cacheusuariosistema
(
  codsistema int4 NOT NULL,
  ultimaatualizacao TIMESTAMP
);
GRANT SELECT ON TABLE sentinela.cacheusuariosistema TO sa_sentinela_client;


-- ************************
-- INSERINDO DADOS INICIAIS
-- ************************

INSERT INTO sentinela.sistema VALUES (1, 'SEN', 'SENTINELA', 'Sentinela - Administração do Sistema Sentinela', 1, 1, '1. Informações e suporte com a DITES
2. Inclusão de novos usuários deve ser feito diretamente com os responsáveis de cada sistema', false, true, false);

INSERT INTO sentinela.enderecoservidor VALUES (1, 1, 'http://localhost:8080/sentinela');
INSERT INTO sentinela.enderecoservidor VALUES (1, 2, 'http://127.0.0.1:8080/sentinela');
INSERT INTO sentinela.enderecoservidor VALUES (1, 3, 'http://localhost/sentinela');
INSERT INTO sentinela.enderecoservidor VALUES (1, 4, 'http://127.0.0.1/sentinela');


INSERT INTO sentinela.metodo(nomemetodo,descmetodo) values ('vincularUsuarioGrupo','Realiza a associação de determinado Usuário a determinado Grupo do Sistema.');
INSERT INTO sentinela.metodo(nomemetodo,descmetodo) values ('desvincularUsuarioGrupo','Remove a associação de determinado Usuário a determinado Grupo do Sistema.');

INSERT INTO sentinela.operacaosistema VALUES (1, 'L', 'Leitura');
INSERT INTO sentinela.operacaosistema VALUES (1, 'I', 'Inserção');
INSERT INTO sentinela.operacaosistema VALUES (1, 'A', 'Atualização');
INSERT INTO sentinela.operacaosistema VALUES (1, 'E', 'Exclusão');

INSERT INTO sentinela.grupo VALUES (1, 'SEN - Grupo ADM do Sentinela', 'Grupo para administrar o sistema de segurança', 1, true, false);

INSERT INTO sentinela.gruposistema VALUES (1, 1, NULL, false);

INSERT INTO sentinela.usuario VALUES (
	1,
	'Sentinela User',
	'intsoft.consultoria@gmail.com',
	'', 
	'01234567890', 
	'2005-05-11', 
	1, 
	'88efae28455693a0bb66b20286f8e89b', 
	'2006-01-01', 
	'', 
	'2006-01-01 00:00:00.000', 
	true, 
	true, 
	false, 
	'sentinela'
);

INSERT INTO sentinela.usuariogrupo VALUES (1, 1);

INSERT INTO sentinela.excecao VALUES (1, 1, 'css/default.css', 'Folha de Estilo');
INSERT INTO sentinela.excecao VALUES (2, 1, 'css/screen.css', 'Folha de Estilo');
INSERT INTO sentinela.excecao VALUES (3, 1, 'images/back_barra_icones.png', 'imagem');
INSERT INTO sentinela.excecao VALUES (4, 1, 'images/back_cabecalho_login.jpg', 'imagem');
INSERT INTO sentinela.excecao VALUES (5, 1, 'images/back_cabecalho_olho.jpg', 'imagem');
INSERT INTO sentinela.excecao VALUES (6, 1, 'images/back_cabecalho.jpg', 'imagem');
INSERT INTO sentinela.excecao VALUES (7, 1, 'images/back_conteudo_login_left.jpg', 'imagem');
INSERT INTO sentinela.excecao VALUES (8, 1, 'images/back_conteudo_login_linha.jpg', 'imagem');
INSERT INTO sentinela.excecao VALUES (9, 1, 'images/back_conteudo_login_olho.jpg', 'imagem');
INSERT INTO sentinela.excecao VALUES (10, 1, 'images/back_conteudo_login_right.jpg', 'imagem');
INSERT INTO sentinela.excecao VALUES (11, 1, 'images/icon_ajuda.png', 'imagem');
INSERT INTO sentinela.excecao VALUES (12, 1, 'images/icon_alterar.png', 'imagem');
INSERT INTO sentinela.excecao VALUES (13, 1, 'images/icon_excluir.png', 'imagem');
INSERT INTO sentinela.excecao VALUES (14, 1, 'images/icon_exibir.png', 'imagem');
INSERT INTO sentinela.excecao VALUES (15, 1, 'images/icon_fechar.png', 'imagem');
INSERT INTO sentinela.excecao VALUES (16, 1, 'images/icon_info.png', 'imagem');
INSERT INTO sentinela.excecao VALUES (17, 1, 'images/icon_localizar.png', 'imagem');
INSERT INTO sentinela.excecao VALUES (18, 1, 'images/icon_msg_aviso.png', 'imagem');
INSERT INTO sentinela.excecao VALUES (19, 1, 'images/icon_msg_erro.png', 'imagem');
INSERT INTO sentinela.excecao VALUES (20, 1, 'images/icon_msg_sucesso.png', 'imagem');
INSERT INTO sentinela.excecao VALUES (21, 1, 'images/icon_pdf.png', 'imagem');
INSERT INTO sentinela.excecao VALUES (22, 1, 'images/icon_seta_baixo.png', 'imagem');
INSERT INTO sentinela.excecao VALUES (23, 1, 'images/icon_seta_cima.png', 'imagem');
INSERT INTO sentinela.excecao VALUES (24, 1, 'images/icon_seta.png', 'imagem');
INSERT INTO sentinela.excecao VALUES (25, 1, 'images/icon_topo.png', 'imagem');
INSERT INTO sentinela.excecao VALUES (26, 1, 'images/icon_voltar.png', 'imagem');
INSERT INTO sentinela.excecao VALUES (27, 1, 'images/icone_calendario.gif', 'imagem');
INSERT INTO sentinela.excecao VALUES (28, 1, 'images/logo_celepar_login.gif', 'imagem');
INSERT INTO sentinela.excecao VALUES (29, 1, 'images/logo_logo_celepar.jpg', 'imagem');
INSERT INTO sentinela.excecao VALUES (30, 1, 'images/logo_logo_celepar.png', 'imagem');
INSERT INTO sentinela.excecao VALUES (31, 1, 'images/logo_gov_parana.png', 'imagem');
INSERT INTO sentinela.excecao VALUES (32, 1, 'images/logo_sentinela_login.png', 'imagem');
INSERT INTO sentinela.excecao VALUES (33, 1, 'images/logo_sentinela.jpg', 'imagem');
INSERT INTO sentinela.excecao VALUES (34, 1, 'images/logo_sfw_livre_pr.png', 'imagem');
INSERT INTO sentinela.excecao VALUES (35, 1, 'js/generic/calendar.js', 'script');
INSERT INTO sentinela.excecao VALUES (36, 1, 'js/generic/calendarpopup.js', 'script');
INSERT INTO sentinela.excecao VALUES (37, 1, 'js/generic/cnpj.js', 'script');
INSERT INTO sentinela.excecao VALUES (38, 1, 'js/generic/cpf.js', 'script');
INSERT INTO sentinela.excecao VALUES (39, 1, 'js/generic/data.js', 'script');
INSERT INTO sentinela.excecao VALUES (40, 1, 'js/generic/email.js', 'script');
INSERT INTO sentinela.excecao VALUES (41, 1, 'js/generic/fone.js', 'script');
INSERT INTO sentinela.excecao VALUES (42, 1, 'js/generic/funcoes.js', 'script');
INSERT INTO sentinela.excecao VALUES (43, 1, 'js/generic/hora.js', 'script');
INSERT INTO sentinela.excecao VALUES (44, 1, 'js/generic/maisinfo.js', 'script');
INSERT INTO sentinela.excecao VALUES (45, 1, 'js/generic/numero.js', 'script');
INSERT INTO sentinela.excecao VALUES (46, 1, 'js/generic/pis.js', 'script');
INSERT INTO sentinela.excecao VALUES (47, 1, 'js/generic/util.js', 'script');
INSERT INTO sentinela.excecao VALUES (48, 1, 'js/generic/windowopen.js', 'script');
INSERT INTO sentinela.excecao VALUES (49, 1, 'js/menu/config_menu.js', 'menu');
INSERT INTO sentinela.excecao VALUES (50, 1, 'js/menu/coolmenus4.js', 'menu');
INSERT INTO sentinela.excecao VALUES (51, 1, 'js/sentinela.js', 'Script');
INSERT INTO sentinela.excecao VALUES (52, 1, 'monitoramento.jsp', 'Página de monitoramento');
INSERT INTO sentinela.excecao VALUES (53, 1, 'index.jsp', 'Página inicial');

INSERT INTO sentinela.funcaosistema VALUES (1, 1, 'Cadastros', '', 'Cadastros Gerais', 10, NULL, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 2, 'Básicos', '', 'Básicos', 10, 1, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 3, 'Sistemas', 'pesquisaSistema.do', 'Cadastro de Sistemas', 10, 2, 'LIAE', false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 4, 'Grupos', 'pesquisaGrupo.do', 'Cadastro de Grupos', 20, 2, 'LIAE', false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 5, 'Função', 'pesquisaFuncao.do', 'Cadastro de Funções', 30, 2, 'LIAE', false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 6, 'Usuario', 'pesquisaUsuario.do', 'Cadastro de Usuários', 40, 2, 'LIAE', false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 7, 'Complementares', '', 'Cadastros Complementares', 20, 1, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 8, 'Funções Auxiliares', 'funcoesAuxiliares.do', 'Cadastro de funções auxiliares', 10, 7, 'IE', false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 9, 'Funções Genéricas', 'funcoesGenericas.do', 'Tela para cadastro de funções genéricas', 20, 7, 'IE', false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 10, 'Exceções', 'excecoes.do', 'Cadastros de Exceções', 30, 7, 'IE', false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 11, 'Ícones', 'pesquisaIcone.do', 'Cadastro de Ícones', 40, 7, 'AEI', false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 12, 'Cópia de Grupo', 'grupoCopia.do', 'Cópia de Grupos', 50, 7, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 13, 'Operações', 'operacoes.do', 'Cadastro de Operações', 60, 7, 'IE', false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 14, 'Permissões', '', 'Edita permissões do sistema', 20, NULL, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 15, 'Direitos', '', 'Cadastros referentes a direitos', 10, 14, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 16, 'Grupos à Sistema', 'grupoSistema.do?acao=consultar', 'Acesso de grupos aos sistema', 10, 15, 'A', false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 17, 'Funções à Grupos', 'funcaoGrupo.do?acao=consultar', 'Acesso de grupos à função', 20, 15, 'A', false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 18, 'Usuário à Grupos', 'usuarioGrupo.do', 'Atribuição de Usuários á grupos', 30, 15, 'A', false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 19, 'Restrições de Horário', '', 'Restrições por hora e data', 20, 14, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 20, 'Sistema', 'pesquisaRestricaoSistema.do', 'Restrições de Horário para Sistema', 10, 19, 'LIAE', false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 21, 'Grupo', 'pesquisaRestricaoGrupo.do', 'Restrições de Horário para Grupos', 20, 19, 'LIAE', false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 22, 'Função', 'pesquisaRestricaoFuncao.do', 'Restrições de Horário para Funções', 30, 19, 'LIAE', false, false, false, false);

INSERT INTO sentinela.funcaosistema VALUES (1, 23, 'Bloqueios', '', 'Bloqueios', 40, 19, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 24, 'Grupos', 'bloqueioGrupo.do', 'Bloqueio de Grupos', 10, 23, 'A', false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 25, 'Funções', 'bloqueioFuncao.do', 'Bloqueio de Funções', 20, 24, 'A', false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 26, 'Usuários', 'bloqueioUsuario.do', 'Bloqueio de Usuários', 30, 25, 'A', false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 27, 'Gerencial', '', 'Opções para gerenciamento do sistema', 30, NULL, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 28, 'Ativar/Desativar Auditoria', 'ativacaoAuditoria.do', 'Ativa ou desativa auditoria', 10, 27, 'A', false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 29, 'Mensagens', 'pesquisaMensagem.do', 'Cadastro de mensagens', 20, 27, 'LIAE', false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 30, 'Usuários ROOT', 'pesquisaRoot.do', 'Atribuição de definição ROOT para usuários', 30, 27, 'EI', false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 31, 'Atendimento', '', 'Funções Para a Central de Atendimento', 40, NULL, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 32, 'Apoio ao Usuário', 'senha.do', 'Apoio ao Usuário', 10, 31, 'A', false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 33, 'Geração de Script', 'gerarScript.do', 'Geração de Script', 20, 31, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 34, 'Parâmetros', 'parametros.do', 'Cadastramento de parâmetros', 30, 31, 'A', false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 35, 'Migrar Usuários', 'transferencia.do', 'Migrar Usuários', 40, 31, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 36, 'Consultas', '', 'Consultas', 50, NULL, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 37, 'Cadastrais', '', 'Consultas Cadastrais do Sistema', 10, 36, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 38, 'Usuários de um Grupo', 'usuariosGrupoReport.do', 'Usuários de um Grupo', 10, 37, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 39, 'Funções de um Sistema', 'funcoesSistemaReport.do', 'Funções de um Sistema', 20, 37, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 40, 'Funções autorizadas a um Grupo', 'funcoesGrupoReport.do', 'Exibe as funções de um Grupo', 30, 37, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 41, 'Grupos com acesso a uma Função', 'gruposFuncaoReport.do', 'Exibe os grupos de uma Função', 40, 37, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 42, 'Grupos com acesso a um Sistema', 'gruposSistemaReport.do', 'Listagem de Grupos com acesso a um Sistema', 50, 37, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 43, 'Usuários com acesso a um Sistema', 'usuariosSistemaReport.do', 'Listagem de usuários com acesso autorizado ao Sistema', 60, 37, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 44, 'Log', '', 'Consultas de Logs', 20, 36, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 45, 'Ativação Auditoria', 'ativacaoAuditoriaReport.do', 'Ativa-Desativa Auditoria', 10, 44, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 46, 'Acessos', '', 'Logs de Acessos', 20, 44, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 47, 'Geral de Acessos', 'acessosGeralReport.do', 'Geral de Acessos', 10, 46, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 48, 'Acessos Usuário', 'acessosUsuarioReport.do', 'Histórico de acessos de um usuário', 20, 46, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 49, 'Autorizações', '', 'Log de Autorizações', 30, 44, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 50, 'Grupo à Função', 'pesquisaLogGrupoFuncao.do', 'Log de direitos de acesso de grupo a função', 10, 49, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 51, 'Usuário à Grupo', 'pesquisaLogUsuarioGrupo.do', 'Log de autorizações de Usuário à Grupo', 20, 49, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 52, 'Grupo à Sistema', 'pesquisaLogGrupoSistema.do', 'Log de direitos de acesso de grupo a sistema', 30, 49, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 53, 'Sistema', '', 'Opções do Sistema', 60, NULL, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 54, 'Tela de Abertura', 'principal.do', 'Tela de abertura', 10, 53, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 55, 'Troca de Senha Pessoal', 'trocaSenha.do', 'Tela para troca de senha', 20, 53, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 56, 'Desconectar', 'principal.do?SENTINELA=SENTINELA_REQUEST_LOGOFF', 'Saída Direta', 99, NULL, NULL, false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 57, 'Popup Pesquisa Usuario', 'popupUsuario.do', 'Janela popup de pesquisa', 0, NULL, NULL, false, false, true, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 58, 'Popup Pesquisa Grupo', 'popupGrupo.do', 'Janela Popup de pesquisa de Grupo', 0, NULL, NULL, false, false, true, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 59, 'Imprimir', 'javascript:window.print()', 'Imprimir', 0, NULL, NULL, false, false, true, false);

INSERT INTO sentinela.funcaosistema VALUES (1, 60, 'Métodos à Grupos', 'metodoGrupo.do?acao=consultar', 'Acesso de grupos à método', 40, 15, 'A', false, false, false, false);
INSERT INTO sentinela.funcaosistema VALUES (1, 61, 'Grupos pertencentes a um usuário', 'gruposUsuarioReport.do', 'Listagem de grupos pertencentes a um usuário', 70, 37, NULL, false, false, false, false);

INSERT INTO sentinela.iconefuncao VALUES (54, 1, 159, 1);
INSERT INTO sentinela.iconefuncao VALUES (3, 1, 176, 2);
INSERT INTO sentinela.iconefuncao VALUES (4, 1, 2, 3);
INSERT INTO sentinela.iconefuncao VALUES (5, 1, 145, 4);
INSERT INTO sentinela.iconefuncao VALUES (55, 1, 60, 5);
INSERT INTO sentinela.iconefuncao VALUES (59, 1, 188, 6);
INSERT INTO sentinela.iconefuncao VALUES (56, 1, 69, 7);

INSERT INTO sentinela.funcaosistemaauxiliar VALUES (1, 3, 'sistema.do', '', 1);
INSERT INTO sentinela.funcaosistemaauxiliar VALUES (2, 4, 'grupo.do', '', 1);
INSERT INTO sentinela.funcaosistemaauxiliar VALUES (3, 5, 'funcao.do', '', 1);
INSERT INTO sentinela.funcaosistemaauxiliar VALUES (4, 6, 'usuario.do', '', 1);
INSERT INTO sentinela.funcaosistemaauxiliar VALUES (5, 11, 'icone.do', 'Manutenção de Icones', 1);
INSERT INTO sentinela.funcaosistemaauxiliar VALUES (6, 12, 'grupoCopia.do', 'Cópia de Grupo', 1);
INSERT INTO sentinela.funcaosistemaauxiliar VALUES (7, 20, 'restricaoSistema.do', 'Página de inclusão/exclusão/atualização', 1);
INSERT INTO sentinela.funcaosistemaauxiliar VALUES (8, 21, 'restricaoGrupo.do', 'Página de inclusão/exclusão/atualização', 1);
INSERT INTO sentinela.funcaosistemaauxiliar VALUES (9, 22, 'restricaoFuncao.do', 'Página de inclusão/exclusão/atualização', 1);
INSERT INTO sentinela.funcaosistemaauxiliar VALUES (10, 28, 'auditoria.do', 'Inclusão/exclusão de auditoria', 1);
INSERT INTO sentinela.funcaosistemaauxiliar VALUES (11, 29, 'mensagem.do', 'Cadastro de Mensagens', 1);
INSERT INTO sentinela.funcaosistemaauxiliar VALUES (12, 30, 'root.do', 'Chamada de inclusão e exclusão', 1);

INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 3, 'AEIL');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 4, 'AEIL');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 5, 'AEIL');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 6, 'AEIL');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 8, 'EI');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 9, 'EI');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 10, 'EI');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 11, 'AEI');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 12, '');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 13, 'EI');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 16, 'A');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 17, 'A');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 18, 'A');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 20, 'AEIL');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 21, 'AEIL');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 22, 'AEIL');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 24, 'A');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 25, 'A');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 26, 'A');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 28, 'A');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 29, 'AEIL');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 30, 'EI');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 32, 'A');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 33, '');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 34, 'A');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 35, '');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 38, '');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 39, '');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 40, '');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 41, '');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 42, '');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 43, '');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 45, '');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 47, '');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 48, '');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 50, '');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 51, '');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 52, '');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 54, '');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 55, '');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 56, '');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 60, 'A');
INSERT INTO sentinela.funcaogruposistema VALUES (1, 1, 61, 'A');

INSERT INTO sentinela.icone VALUES (1, 'icon_a.png');
INSERT INTO sentinela.icone VALUES (2, 'icon_abrir.png');
INSERT INTO sentinela.icone VALUES (3, 'icon_adicionar1.png');
INSERT INTO sentinela.icone VALUES (4, 'icon_adicionar.png');
INSERT INTO sentinela.icone VALUES (5, 'icon_agenda2.png');
INSERT INTO sentinela.icone VALUES (6, 'icon_agenda.png');
INSERT INTO sentinela.icone VALUES (7, 'icon_ajuda.png');
INSERT INTO sentinela.icone VALUES (8, 'icon_ajustar_largura.png');
INSERT INTO sentinela.icone VALUES (9, 'icon_alerta.png');
INSERT INTO sentinela.icone VALUES (10, 'icon_ambulancia.png');
INSERT INTO sentinela.icone VALUES (11, 'icon_ancora.png');
INSERT INTO sentinela.icone VALUES (12, 'icon_anotacao1.png');
INSERT INTO sentinela.icone VALUES (13, 'icon_anotacao2.png');
INSERT INTO sentinela.icone VALUES (14, 'icon_anotacao.png');
INSERT INTO sentinela.icone VALUES (15, 'icon_antena.png');
INSERT INTO sentinela.icone VALUES (16, 'icon_apagar.png');
INSERT INTO sentinela.icone VALUES (17, 'icon_arquivo_mao.png');
INSERT INTO sentinela.icone VALUES (18, 'icon_arvore2.png');
INSERT INTO sentinela.icone VALUES (19, 'icon_arvore.png');
INSERT INTO sentinela.icone VALUES (20, 'icon_ativar_pc.png');
INSERT INTO sentinela.icone VALUES (21, 'icon_atualizar1.png');
INSERT INTO sentinela.icone VALUES (22, 'icon_atualizar.png');
INSERT INTO sentinela.icone VALUES (23, 'icon_aviao.png');
INSERT INTO sentinela.icone VALUES (24, 'icon_balanca.png');
INSERT INTO sentinela.icone VALUES (25, 'icon_balao1.png');
INSERT INTO sentinela.icone VALUES (26, 'icon_balao_informacoes.png');
INSERT INTO sentinela.icone VALUES (27, 'icon_balao.png');
INSERT INTO sentinela.icone VALUES (28, 'icon_bandeira_amarela.png');
INSERT INTO sentinela.icone VALUES (29, 'icon_bandeira_azul.png');
INSERT INTO sentinela.icone VALUES (30, 'icon_bandeira_brasil.png');
INSERT INTO sentinela.icone VALUES (31, 'icon_bandeira_verde.png');
INSERT INTO sentinela.icone VALUES (32, 'icon_bandeira_vermelha.png');
INSERT INTO sentinela.icone VALUES (33, 'icon_barco_vela.png');
INSERT INTO sentinela.icone VALUES (34, 'icon_bicicleta.png');
INSERT INTO sentinela.icone VALUES (35, 'icon_cadeado1.png');
INSERT INTO sentinela.icone VALUES (36, 'icon_cadeado_aberto.png');
INSERT INTO sentinela.icone VALUES (37, 'icon_cadeado_fechado.png');
INSERT INTO sentinela.icone VALUES (38, 'icon_cadeira.png');
INSERT INTO sentinela.icone VALUES (39, 'icon_caixas.png');
INSERT INTO sentinela.icone VALUES (40, 'icon_calculadora1.png');
INSERT INTO sentinela.icone VALUES (41, 'icon_calculadora.png');
INSERT INTO sentinela.icone VALUES (42, 'icon_calendario1.png');
INSERT INTO sentinela.icone VALUES (43, 'icon_calendario2.png');
INSERT INTO sentinela.icone VALUES (44, 'icon_calendario3.png');
INSERT INTO sentinela.icone VALUES (45, 'icon_calendario.png');
INSERT INTO sentinela.icone VALUES (46, 'icon_cama.png');
INSERT INTO sentinela.icone VALUES (47, 'icon_camera.png');
INSERT INTO sentinela.icone VALUES (48, 'icon_caminhao.png');
INSERT INTO sentinela.icone VALUES (49, 'icon_caminhonete.png');
INSERT INTO sentinela.icone VALUES (50, 'icon_cancelar.png');
INSERT INTO sentinela.icone VALUES (51, 'icon_canivete.png');
INSERT INTO sentinela.icone VALUES (52, 'icon_carimbo.png');
INSERT INTO sentinela.icone VALUES (53, 'icon_carrinho_compras.png');
INSERT INTO sentinela.icone VALUES (54, 'icon_carro.png');
INSERT INTO sentinela.icone VALUES (55, 'icon_casa.png');
INSERT INTO sentinela.icone VALUES (56, 'icon_celular.png');
INSERT INTO sentinela.icone VALUES (57, 'icon_certificado.png');
INSERT INTO sentinela.icone VALUES (58, 'icon_chave1.png');
INSERT INTO sentinela.icone VALUES (59, 'icon_chave.png');
INSERT INTO sentinela.icone VALUES (60, 'icon_chaves.png');
INSERT INTO sentinela.icone VALUES (61, 'icon_check1.png');
INSERT INTO sentinela.icone VALUES (62, 'icon_check.png');
INSERT INTO sentinela.icone VALUES (63, 'icon_chicara.png');
INSERT INTO sentinela.icone VALUES (64, 'icon_clips.png');
INSERT INTO sentinela.icone VALUES (65, 'icon_cod_barras.png');
INSERT INTO sentinela.icone VALUES (66, 'icon_comprimido.png');
INSERT INTO sentinela.icone VALUES (67, 'icon_conexao1.png');
INSERT INTO sentinela.icone VALUES (68, 'icon_conexao2.png');
INSERT INTO sentinela.icone VALUES (69, 'icon_conexao.png');
INSERT INTO sentinela.icone VALUES (70, 'icon_conferencia.png');
INSERT INTO sentinela.icone VALUES (71, 'icon_configuracoes1.png');
INSERT INTO sentinela.icone VALUES (72, 'icon_configuracoes2.png');
INSERT INTO sentinela.icone VALUES (73, 'icon_configuracoes.png');
INSERT INTO sentinela.icone VALUES (74, 'icon_conta_gotas.png');
INSERT INTO sentinela.icone VALUES (75, 'icon_copiar.png');
INSERT INTO sentinela.icone VALUES (76, 'icon_deficiente.png');
INSERT INTO sentinela.icone VALUES (77, 'icon_desativar_pc.png');
INSERT INTO sentinela.icone VALUES (78, 'icon_desenho1.png');
INSERT INTO sentinela.icone VALUES (79, 'icon_desenho.png');
INSERT INTO sentinela.icone VALUES (80, 'icon_desfazer.png');
INSERT INTO sentinela.icone VALUES (81, 'icon_desligar.png');
INSERT INTO sentinela.icone VALUES (82, 'icon_destaque.png');
INSERT INTO sentinela.icone VALUES (83, 'icon_diagrama1.png');
INSERT INTO sentinela.icone VALUES (84, 'icon_diagrama.png');
INSERT INTO sentinela.icone VALUES (85, 'icon_dinheiro1.png');
INSERT INTO sentinela.icone VALUES (86, 'icon_dinheiro2.png');
INSERT INTO sentinela.icone VALUES (87, 'icon_dinheiro3.png');
INSERT INTO sentinela.icone VALUES (88, 'icon_dinheiro.png');
INSERT INTO sentinela.icone VALUES (89, 'icon_distribuir.png');
INSERT INTO sentinela.icone VALUES (90, 'icon_documento1.png');
INSERT INTO sentinela.icone VALUES (91, 'icon_documento2.png');
INSERT INTO sentinela.icone VALUES (92, 'icon_documento3.png');
INSERT INTO sentinela.icone VALUES (93, 'icon_documento_numero.png');
INSERT INTO sentinela.icone VALUES (94, 'icon_documento.png');
INSERT INTO sentinela.icone VALUES (95, 'icon_documentos.png');
INSERT INTO sentinela.icone VALUES (96, 'icon_download.png');
INSERT INTO sentinela.icone VALUES (97, 'icon_duvidas.png');
INSERT INTO sentinela.icone VALUES (98, 'icon_editar_email.png');
INSERT INTO sentinela.icone VALUES (99, 'icon_email1.png');
INSERT INTO sentinela.icone VALUES (100, 'icon_email2.png');
INSERT INTO sentinela.icone VALUES (101, 'icon_email3.png');
INSERT INTO sentinela.icone VALUES (102, 'icon_email_confirmar.png');
INSERT INTO sentinela.icone VALUES (103, 'icon_email.png');
INSERT INTO sentinela.icone VALUES (104, 'icon_encaminhar.png');
INSERT INTO sentinela.icone VALUES (105, 'icon_enviar_email.png');
INSERT INTO sentinela.icone VALUES (106, 'icon_etiquetas.png');
INSERT INTO sentinela.icone VALUES (107, 'icon_exclamacao.png');
INSERT INTO sentinela.icone VALUES (108, 'icon_excluir1.png');
INSERT INTO sentinela.icone VALUES (109, 'icon_excluir2.png');
INSERT INTO sentinela.icone VALUES (110, 'icon_excluir3.png');
INSERT INTO sentinela.icone VALUES (111, 'icon_excluir4.png');
INSERT INTO sentinela.icone VALUES (112, 'icon_excluir5.png');
INSERT INTO sentinela.icone VALUES (113, 'icon_excluir_balao.png');
INSERT INTO sentinela.icone VALUES (114, 'icon_expandir.png');
INSERT INTO sentinela.icone VALUES (115, 'icon_extintor.png');
INSERT INTO sentinela.icone VALUES (116, 'icon_fichas.png');
INSERT INTO sentinela.icone VALUES (117, 'icon_foto.png');
INSERT INTO sentinela.icone VALUES (118, 'icon_funil.png');
INSERT INTO sentinela.icone VALUES (119, 'icon_garrafa.png');
INSERT INTO sentinela.icone VALUES (120, 'icon_gerencial.png');
INSERT INTO sentinela.icone VALUES (121, 'icon_grafico2.png');
INSERT INTO sentinela.icone VALUES (122, 'icon_grafico3.png');
INSERT INTO sentinela.icone VALUES (123, 'icon_grafico4.png');
INSERT INTO sentinela.icone VALUES (124, 'icon_grafico5.png');
INSERT INTO sentinela.icone VALUES (125, 'icon_helicoptero.png');
INSERT INTO sentinela.icone VALUES (126, 'icon_hierarquia.png');
INSERT INTO sentinela.icone VALUES (127, 'icon_indicar.png');
INSERT INTO sentinela.icone VALUES (128, 'icon_informacao.png');
INSERT INTO sentinela.icone VALUES (129, 'icon_janelas.png');
INSERT INTO sentinela.icone VALUES (130, 'icon_lampada.png');
INSERT INTO sentinela.icone VALUES (131, 'icon_laptop.png');
INSERT INTO sentinela.icone VALUES (132, 'icon_livro1.png');
INSERT INTO sentinela.icone VALUES (133, 'icon_livro2.png');
INSERT INTO sentinela.icone VALUES (134, 'icon_livro3.png');
INSERT INTO sentinela.icone VALUES (135, 'icon_livro.png');
INSERT INTO sentinela.icone VALUES (136, 'icon_livros.png');
INSERT INTO sentinela.icone VALUES (137, 'icon_lixeira_cheia.png');
INSERT INTO sentinela.icone VALUES (138, 'icon_lixeira_vazia.png');
INSERT INTO sentinela.icone VALUES (139, 'icon_lupa1.png');
INSERT INTO sentinela.icone VALUES (140, 'icon_lupa3.png');
INSERT INTO sentinela.icone VALUES (141, 'icon_lupa4.png');
INSERT INTO sentinela.icone VALUES (142, 'icon_lupa_documento.png');
INSERT INTO sentinela.icone VALUES (143, 'icon_lupa_email1.png');
INSERT INTO sentinela.icone VALUES (144, 'icon_lupa_email.png');
INSERT INTO sentinela.icone VALUES (145, 'icon_lupa_papel.png');
INSERT INTO sentinela.icone VALUES (146, 'icon_lupa_pc.png');
INSERT INTO sentinela.icone VALUES (147, 'icon_lupa_pdf.png');
INSERT INTO sentinela.icone VALUES (148, 'icon_lupa_planeta.png');
INSERT INTO sentinela.icone VALUES (149, 'icon_mais.png');
INSERT INTO sentinela.icone VALUES (150, 'icon_manutencao.png');
INSERT INTO sentinela.icone VALUES (151, 'icon_menos.png');
INSERT INTO sentinela.icone VALUES (152, 'icon_moto.png');
INSERT INTO sentinela.icone VALUES (153, 'icon_mouse.png');
INSERT INTO sentinela.icone VALUES (154, 'icon_navio.png');
INSERT INTO sentinela.icone VALUES (155, 'icon_nivel_acima2.png');
INSERT INTO sentinela.icone VALUES (156, 'icon_nivel_acima.png');
INSERT INTO sentinela.icone VALUES (157, 'icon_nota.png');
INSERT INTO sentinela.icone VALUES (158, 'icon_novo1.png');
INSERT INTO sentinela.icone VALUES (159, 'icon_novo.png');
INSERT INTO sentinela.icone VALUES (160, 'icon_nuvem_chuva.png');
INSERT INTO sentinela.icone VALUES (161, 'icon_nuvem_cinza_chuva.png');
INSERT INTO sentinela.icone VALUES (162, 'icon_nuvem_cinza.png');
INSERT INTO sentinela.icone VALUES (163, 'icon_nuvem.png');
INSERT INTO sentinela.icone VALUES (164, 'icon_observacao.png');
INSERT INTO sentinela.icone VALUES (165, 'icon_obter.png');
INSERT INTO sentinela.icone VALUES (166, 'icon_oculos.png');
INSERT INTO sentinela.icone VALUES (167, 'icon_onibus.png');
INSERT INTO sentinela.icone VALUES (168, 'icon_opcoes.png');
INSERT INTO sentinela.icone VALUES (169, 'icon_operacional.png');
INSERT INTO sentinela.icone VALUES (170, 'icon_para_todos.png');
INSERT INTO sentinela.icone VALUES (171, 'icon_pasta_check.png');
INSERT INTO sentinela.icone VALUES (172, 'icon_pasta_documentos.png');
INSERT INTO sentinela.icone VALUES (173, 'icon_pasta.png');
INSERT INTO sentinela.icone VALUES (174, 'icon_pasta_rede.png');
INSERT INTO sentinela.icone VALUES (175, 'icon_pc1.png');
INSERT INTO sentinela.icone VALUES (176, 'icon_pc.png');
INSERT INTO sentinela.icone VALUES (177, 'icon_perigoso.png');
INSERT INTO sentinela.icone VALUES (178, 'icon_pesquisar.png');
INSERT INTO sentinela.icone VALUES (179, 'icon_pincel1.png');
INSERT INTO sentinela.icone VALUES (180, 'icon_pincel.png');
INSERT INTO sentinela.icone VALUES (181, 'icon_placa1.png');
INSERT INTO sentinela.icone VALUES (182, 'icon_plurianual.png');
INSERT INTO sentinela.icone VALUES (183, 'icon_porta_entrar.png');
INSERT INTO sentinela.icone VALUES (184, 'icon_portal.png');
INSERT INTO sentinela.icone VALUES (185, 'icon_porta_sair.png');
INSERT INTO sentinela.icone VALUES (186, 'icon_prancheta.png');
INSERT INTO sentinela.icone VALUES (187, 'icon_preenchimento.png');
INSERT INTO sentinela.icone VALUES (188, 'icon_print.png');
INSERT INTO sentinela.icone VALUES (189, 'icon_procurar.png');
INSERT INTO sentinela.icone VALUES (190, 'icon_quebracabeca.png');
INSERT INTO sentinela.icone VALUES (191, 'icon_quimica.png');
INSERT INTO sentinela.icone VALUES (192, 'icon_raio.png');
INSERT INTO sentinela.icone VALUES (193, 'icon_ramo.png');
INSERT INTO sentinela.icone VALUES (194, 'icon_recortar1.png');
INSERT INTO sentinela.icone VALUES (195, 'icon_recortar.png');
INSERT INTO sentinela.icone VALUES (196, 'icon_rede2.png');
INSERT INTO sentinela.icone VALUES (197, 'icon_rede.png');
INSERT INTO sentinela.icone VALUES (198, 'icon_refazer.png');
INSERT INTO sentinela.icone VALUES (199, 'icon_relogio2.png');
INSERT INTO sentinela.icone VALUES (200, 'icon_relogio3.png');
INSERT INTO sentinela.icone VALUES (201, 'icon_relogio_email.png');
INSERT INTO sentinela.icone VALUES (202, 'icon_relogio.png');
INSERT INTO sentinela.icone VALUES (203, 'icon_remover1.png');
INSERT INTO sentinela.icone VALUES (204, 'icon_remover_email.png');
INSERT INTO sentinela.icone VALUES (205, 'icon_remover_pasta.png');
INSERT INTO sentinela.icone VALUES (206, 'icon_remover.png');
INSERT INTO sentinela.icone VALUES (207, 'icon_responder.png');
INSERT INTO sentinela.icone VALUES (208, 'icon_salvar1.png');
INSERT INTO sentinela.icone VALUES (209, 'icon_salvar2.png');
INSERT INTO sentinela.icone VALUES (210, 'icon_salvar3.png');
INSERT INTO sentinela.icone VALUES (211, 'icon_salvar_id.png');
INSERT INTO sentinela.icone VALUES (212, 'icon_salvar.png');
INSERT INTO sentinela.icone VALUES (213, 'icon_saude2.png');
INSERT INTO sentinela.icone VALUES (214, 'icon_scaner_rede.png');
INSERT INTO sentinela.icone VALUES (215, 'icon_selecionar.png');
INSERT INTO sentinela.icone VALUES (216, 'icon_semaforo_amarelo.png');
INSERT INTO sentinela.icone VALUES (217, 'icon_semaforo.png');
INSERT INTO sentinela.icone VALUES (218, 'icon_semaforo_verde.png');
INSERT INTO sentinela.icone VALUES (219, 'icon_semaforo_vermelho.png');
INSERT INTO sentinela.icone VALUES (220, 'icon_seta1.png');
INSERT INTO sentinela.icone VALUES (221, 'icon_seta2.png');
INSERT INTO sentinela.icone VALUES (222, 'icon_seta3.png');
INSERT INTO sentinela.icone VALUES (223, 'icon_seta4.png');
INSERT INTO sentinela.icone VALUES (224, 'icon_seta5.png');
INSERT INTO sentinela.icone VALUES (225, 'icon_seta6.png');
INSERT INTO sentinela.icone VALUES (226, 'icon_seta7.png');
INSERT INTO sentinela.icone VALUES (227, 'icon_seta8.png');
INSERT INTO sentinela.icone VALUES (228, 'icon_seta_placa1.png');
INSERT INTO sentinela.icone VALUES (229, 'icon_seta_placa2.png');
INSERT INTO sentinela.icone VALUES (230, 'icon_seta_placa3.png');
INSERT INTO sentinela.icone VALUES (231, 'icon_seta_placa.png');
INSERT INTO sentinela.icone VALUES (232, 'icon_seta.png');
INSERT INTO sentinela.icone VALUES (233, 'icon_setas_coloridas.png');
INSERT INTO sentinela.icone VALUES (234, 'icon_sino.png');
INSERT INTO sentinela.icone VALUES (235, 'icon_sol.png');
INSERT INTO sentinela.icone VALUES (236, 'icon_som2.png');
INSERT INTO sentinela.icone VALUES (237, 'icon_som.png');
INSERT INTO sentinela.icone VALUES (238, 'icon_tatico.png');
INSERT INTO sentinela.icone VALUES (239, 'icon_teclado.png');
INSERT INTO sentinela.icone VALUES (240, 'icon_telefone_livro1.png');
INSERT INTO sentinela.icone VALUES (241, 'icon_telefone.png');
INSERT INTO sentinela.icone VALUES (242, 'icon_termometro.png');
INSERT INTO sentinela.icone VALUES (243, 'icon_torneira.png');
INSERT INTO sentinela.icone VALUES (244, 'icon_transferencia1.png');
INSERT INTO sentinela.icone VALUES (245, 'icon_transferencia.png');
INSERT INTO sentinela.icone VALUES (246, 'icon_trem.png');
INSERT INTO sentinela.icone VALUES (247, 'icon_upload.png');
INSERT INTO sentinela.icone VALUES (248, 'icon_usuario_email.png');
INSERT INTO sentinela.icone VALUES (249, 'icon_usuario.png');
INSERT INTO sentinela.icone VALUES (250, 'icon_usuarios.png');
INSERT INTO sentinela.icone VALUES (251, 'icon_visualizar_inteiro.png');
INSERT INTO sentinela.icone VALUES (252, 'selo_sentinela.png');


INSERT INTO sentinela.sentinelaparametros VALUES (
	1, 
	'sentinela', 
	'DESENVOLVIMENTO', 
	10, 
	60, 
	365, 
	'+55(92)3233-2980', 
	'intsoft.consultoria@gmail.com',
	'intqwesoftewq',
	'gmail.com', 
	'Sistema Sentinela - Informações', 
	'Olá %1,

	Você foi cadastrado no sistema Sentinela. Utilize as informações abaixo para entrar no sistema:
	
	Usuario: %2
	Senha: %3
	
	É conveniente lembrar que esta senha pode ser alterada em qualquer sistema que utiliza o padrão de segurança Sentinela.
	
	Atenciosamente,
	
	Administrador Sentinela
	-----------------------', 
	'Olá,

	Seus dados de acesso no sistema Sentinela (Desenvolvimento) foram alterados. Os dados corretos são:

    Usuário: %1
	Senha: %2
	
	É conveniente lembrar que esta senha pode ser alterada apenas nos sistemas aos quais você tenha acesso.
	
	Atenciosamente,
	
    Administrador Sentinela
    -----------------------', 
    'http://www.intsoft.inf.br/gps', 
    'Sistema Seguro! Este sistema contém a segurança do Sistema Sentinela. (*)', 
    false, 
    false
);
		

SET search_path = sentinela, pg_catalog;

CREATE UNIQUE INDEX ix_u_sistema_sigla ON sistema USING btree (siglasistema);

CREATE INDEX fk_sistema_loglogin ON log_login USING btree (codsistema);

CREATE INDEX fk_usuario_loglogin ON log_login USING btree (codusuario);

CREATE INDEX fki_grupo_loggrupofuncao ON log_grupo_funcao USING btree (codgrupo);

CREATE INDEX fk_funcaosistema_loggrupofuncao ON log_grupo_funcao USING btree (codsistema, codfuncao);

CREATE INDEX fk_usuario_logusuariogrupo ON log_usuario_grupo USING btree (codusuario);

CREATE INDEX fk_grupo_logusuariogrupo ON log_usuario_grupo USING btree (codgrupo);

CREATE INDEX fk_usuario_autorlog ON log_usuario_grupo USING btree (autor);

CREATE INDEX fk_usuario_autorlogusuariogrupo ON log_usuario_grupo USING btree (autor);

CREATE INDEX fk_usuario_autorloggrupofuncao ON log_grupo_funcao USING btree (autor);

CREATE INDEX fk_grupo_loggruposistema ON log_grupo_sistema USING btree (codgrupo);

CREATE INDEX fk_sistema_loggruposistema ON log_grupo_sistema USING btree (codsistema);

CREATE INDEX fk_usuario_autorloggruposistema ON log_grupo_sistema USING btree (autor);

CREATE UNIQUE INDEX ix_u_usuario_login ON usuario USING btree (loginusuario);


-- ************************
-- CRIANDO CHAVES-PRIMÁRIAS
-- ************************

ALTER TABLE ONLY cachesistema 
    ADD CONSTRAINT pk_cache_sistema PRIMARY KEY (codsistema);

ALTER TABLE ONLY cacheusuario 
    ADD CONSTRAINT pk_cache_usuario PRIMARY KEY (codusuario);

ALTER TABLE ONLY cacheusuariosistema 
    ADD CONSTRAINT pk_cache_usuariosistema PRIMARY KEY (codsistema);

ALTER TABLE ONLY auditoriacontrole
    ADD CONSTRAINT pk_auditoriacontrole PRIMARY KEY (codsistema, codauditoria);

ALTER TABLE ONLY enderecoservidor
    ADD CONSTRAINT pk_enderecoservidor PRIMARY KEY (codsistema, codservidor);

ALTER TABLE ONLY excecao
    ADD CONSTRAINT pk_excecao PRIMARY KEY (codexcecao, codsistema);

ALTER TABLE ONLY funcaogruposistema
    ADD CONSTRAINT pk_funcaogruposistema PRIMARY KEY (codsistema, codgrupo, codfuncao);

ALTER TABLE ONLY metodogruposistema
	ADD CONSTRAINT pk_metodogruposistema PRIMARY KEY (codsistema, codgrupo, codmetodo);

ALTER TABLE ONLY funcaosistema
	ADD CONSTRAINT pk_funcaosistema PRIMARY KEY (codsistema, codfuncao);

ALTER TABLE ONLY metodo
	ADD CONSTRAINT pk_metodo PRIMARY KEY (codmetodo);

ALTER TABLE ONLY funcaosistemaauxiliar
    ADD CONSTRAINT pk_funcaosistemaauxiliar PRIMARY KEY (codfuncao, codsistema, codfuncaoauxiliar);

ALTER TABLE ONLY grupo
    ADD CONSTRAINT pk_grupo PRIMARY KEY (codgrupo);

ALTER TABLE ONLY gruposistema
    ADD CONSTRAINT pk_gruposistema PRIMARY KEY (codsistema, codgrupo);

ALTER TABLE ONLY icone
    ADD CONSTRAINT pk_icone PRIMARY KEY (codicone);

ALTER TABLE ONLY iconefuncao
    ADD CONSTRAINT pk_iconefuncao PRIMARY KEY (codfuncao, codsistema, codicone);

ALTER TABLE ONLY logauditoria
    ADD CONSTRAINT pk_logauditoria PRIMARY KEY (codsistema, codlog);

ALTER TABLE ONLY mensagem
    ADD CONSTRAINT pk_mensagem PRIMARY KEY (idmensagem);

ALTER TABLE ONLY mensagemgrupo
    ADD CONSTRAINT pk_mensagemgrupo PRIMARY KEY (codgrupo, idmensagem);

ALTER TABLE ONLY mensagemsistema
    ADD CONSTRAINT pk_mensagemsistema PRIMARY KEY (idmensagem, codsistema);

ALTER TABLE ONLY operacaosistema
    ADD CONSTRAINT pk_operacaosistema PRIMARY KEY (codsistema, tipooperacao);

ALTER TABLE ONLY restricaofuncao
    ADD CONSTRAINT pk_restricaofuncao PRIMARY KEY (codrestricao, codrestricaofuncao);

ALTER TABLE ONLY restricaogrupo
    ADD CONSTRAINT pk_restricaogrupo PRIMARY KEY (codrestricao, codrestricaogrupo);

ALTER TABLE ONLY restricaohorario
    ADD CONSTRAINT pk_restricaohorario PRIMARY KEY (codrestricao);

ALTER TABLE ONLY restricaosistema
    ADD CONSTRAINT pk_restricaosistema PRIMARY KEY (codrestricao, codrestricaosistema);

ALTER TABLE ONLY sistema
    ADD CONSTRAINT pk_sistema PRIMARY KEY (codsistema);

ALTER TABLE ONLY usuario
    ADD CONSTRAINT pk_usuario_pkey PRIMARY KEY (codusuario);

ALTER TABLE ONLY usuariogrupo
    ADD CONSTRAINT pk_usuariogrupo PRIMARY KEY (codusuario, codgrupo);

ALTER TABLE ONLY usuariosistema
    ADD CONSTRAINT pk_usuariosistema PRIMARY KEY (codsistema, codusuario);

ALTER TABLE ONLY log_login
    ADD CONSTRAINT pk_loglogin PRIMARY KEY (codlog);

ALTER TABLE ONLY log_grupo_funcao
    ADD CONSTRAINT pk_loggrupofuncao PRIMARY KEY (codlog);

ALTER TABLE ONLY log_grupo_metodo
	ADD CONSTRAINT pk_loggrupometodo PRIMARY KEY (codlog);

ALTER TABLE ONLY log_usuario_grupo
    ADD CONSTRAINT pk_logusuariogrupo PRIMARY KEY (codlog);

ALTER TABLE ONLY log_grupo_sistema
    ADD CONSTRAINT pk_loggruposistema PRIMARY KEY (codlog);

ALTER TABLE ONLY restricaoip   
	ADD CONSTRAINT pk_restricaoip PRIMARY KEY (codrestricaoip);
	
ALTER TABLE ONLY restricaoipgrupo
	ADD CONSTRAINT pk_restricaoipgrupo PRIMARY KEY (codrestricaoip, codgrupo, codsistema);
	
ALTER TABLE ONLY restricaoipsistema
	ADD CONSTRAINT pk_restricaoipsistema PRIMARY KEY (codrestricaoip, codsistema);

-- ***************************
-- CRIANDO CHAVES-ESTRANGEIRAS
-- ***************************
ALTER TABLE ONLY cachesistema 
  	ADD CONSTRAINT fk_sistema FOREIGN KEY (codsistema) REFERENCES sentinela.sistema (codsistema) ON UPDATE NO ACTION ON DELETE NO ACTION;
    
ALTER TABLE ONLY cacheusuario 
  	ADD CONSTRAINT fk_usuario FOREIGN KEY (codusuario) REFERENCES sentinela.usuario (codusuario) ON UPDATE NO ACTION ON DELETE NO ACTION;

ALTER TABLE ONLY cacheusuariosistema 
  	ADD CONSTRAINT fk_sistema FOREIGN KEY (codsistema) REFERENCES sentinela.sistema (codsistema) ON UPDATE NO ACTION ON DELETE NO ACTION;

ALTER TABLE ONLY funcaogruposistema
    ADD CONSTRAINT fk_gruposistema_funcaogruposistema FOREIGN KEY (codsistema, codgrupo) REFERENCES gruposistema(codsistema, codgrupo);

ALTER TABLE ONLY metodogruposistema
	ADD CONSTRAINT fk_gruposistema_metodogruposistema FOREIGN KEY (codsistema, codgrupo) REFERENCES sentinela.gruposistema (codsistema, codgrupo) ON UPDATE NO ACTION ON DELETE NO ACTION;
	
ALTER TABLE ONLY metodogruposistema
	ADD CONSTRAINT fk_metodo_metodogruposistema FOREIGN KEY (codmetodo) REFERENCES sentinela.metodo (codmetodo) ON UPDATE NO ACTION ON DELETE NO ACTION;

ALTER TABLE ONLY gruposistema
    ADD CONSTRAINT fk_grupo_gruposistema FOREIGN KEY (codgrupo) REFERENCES grupo(codgrupo);

ALTER TABLE ONLY operacaosistema
    ADD CONSTRAINT fk_sistema_operacaosistema FOREIGN KEY (codsistema) REFERENCES sistema(codsistema);

ALTER TABLE ONLY usuariogrupo
    ADD CONSTRAINT fk_grupo_usuariogrupo FOREIGN KEY (codgrupo) REFERENCES grupo(codgrupo);

ALTER TABLE ONLY usuariosistema
    ADD CONSTRAINT fk_usuario_usuariosistema FOREIGN KEY (codusuario) REFERENCES usuario(codusuario);

ALTER TABLE ONLY excecao
    ADD CONSTRAINT fk_sistema_excecao FOREIGN KEY (codsistema) REFERENCES sistema(codsistema);

ALTER TABLE ONLY mensagem
    ADD CONSTRAINT fk_usuario_mensagem FOREIGN KEY (codusuario) REFERENCES usuario(codusuario);

ALTER TABLE ONLY mensagemsistema
    ADD CONSTRAINT fk_mensagem_mensagemsistema FOREIGN KEY (idmensagem) REFERENCES mensagem(idmensagem);

ALTER TABLE ONLY mensagemgrupo
    ADD CONSTRAINT fk_grupo_mensagemgrupo FOREIGN KEY (codgrupo) REFERENCES grupo(codgrupo);

ALTER TABLE ONLY restricaohorario
    ADD CONSTRAINT fk_sistema_restricaohorario FOREIGN KEY (codsistema) REFERENCES sistema(codsistema);

ALTER TABLE ONLY restricaosistema
    ADD CONSTRAINT fk_restricaohorario_restricaosistema FOREIGN KEY (codrestricao) REFERENCES restricaohorario(codrestricao);

ALTER TABLE ONLY restricaogrupo
    ADD CONSTRAINT fk_restricaohorario_restricaogrupo FOREIGN KEY (codrestricao) REFERENCES restricaohorario(codrestricao);

ALTER TABLE ONLY restricaofuncao
    ADD CONSTRAINT fk_restricaohorario_restricaofuncao FOREIGN KEY (codrestricao) REFERENCES restricaohorario(codrestricao);

ALTER TABLE ONLY funcaosistema
    ADD CONSTRAINT fk_sistema_funcaosistema FOREIGN KEY (codsistema) REFERENCES sistema(codsistema);

ALTER TABLE ONLY auditoriacontrole
    ADD CONSTRAINT fk_sistema_auditoriacontrole FOREIGN KEY (codsistema) REFERENCES sistema(codsistema);

ALTER TABLE ONLY enderecoservidor
    ADD CONSTRAINT fk_sistema_enderecoservidor FOREIGN KEY (codsistema) REFERENCES sistema(codsistema);

ALTER TABLE ONLY funcaosistemaauxiliar
    ADD CONSTRAINT fk_funcaosistema_funcaosistemaauxiliar FOREIGN KEY (codfuncao, codsistema) REFERENCES funcaosistema(codfuncao, codsistema);

ALTER TABLE ONLY iconefuncao
    ADD CONSTRAINT fk_funcaosistema_iconefuncao FOREIGN KEY (codfuncao, codsistema) REFERENCES funcaosistema(codfuncao, codsistema);

ALTER TABLE ONLY sistema
    ADD CONSTRAINT fk_usuario_sistema FOREIGN KEY (responsavel) REFERENCES usuario(codusuario);

ALTER TABLE ONLY gruposistema
    ADD CONSTRAINT fk_sistema_gruposistema FOREIGN KEY (codsistema) REFERENCES sistema(codsistema);

ALTER TABLE ONLY usuariogrupo
    ADD CONSTRAINT fk_usuario_usuariogrupo FOREIGN KEY (codusuario) REFERENCES usuario(codusuario);

ALTER TABLE ONLY usuariosistema
    ADD CONSTRAINT fk_sistema_usuariosistema FOREIGN KEY (codsistema) REFERENCES sistema(codsistema);

ALTER TABLE ONLY mensagem
    ADD CONSTRAINT fk_grupo_mensagem FOREIGN KEY (codgrupomanutencao) REFERENCES grupo(codgrupo);

ALTER TABLE ONLY mensagemsistema
    ADD CONSTRAINT fk_sistema_mensagemsistema FOREIGN KEY (codsistema) REFERENCES sistema(codsistema);

ALTER TABLE ONLY mensagemgrupo
    ADD CONSTRAINT fk_mensagem_mensagemgrupo FOREIGN KEY (idmensagem) REFERENCES mensagem(idmensagem);

ALTER TABLE ONLY restricaogrupo
    ADD CONSTRAINT fk_grupo_restricaogrupo FOREIGN KEY (codgrupo) REFERENCES grupo(codgrupo);

ALTER TABLE ONLY auditoriacontrole
    ADD CONSTRAINT fk_usuario_auditoriacontrole FOREIGN KEY (codusuario) REFERENCES usuario(codusuario);

ALTER TABLE ONLY logauditoria
    ADD CONSTRAINT fk_usuario_logauditoria FOREIGN KEY (codusuario) REFERENCES usuario(codusuario);

ALTER TABLE ONLY iconefuncao
    ADD CONSTRAINT fk_icone_iconefuncao FOREIGN KEY (codicone) REFERENCES icone(codicone);

ALTER TABLE ONLY log_login
    ADD CONSTRAINT fk_sistema_loglogin FOREIGN KEY (codsistema) REFERENCES sistema(codsistema) ON UPDATE RESTRICT ON DELETE RESTRICT;

ALTER TABLE ONLY log_login
    ADD CONSTRAINT fk_usuario_loglogin FOREIGN KEY (codusuario) REFERENCES usuario(codusuario) ON UPDATE RESTRICT ON DELETE RESTRICT;

ALTER TABLE ONLY log_grupo_funcao
    ADD CONSTRAINT fk_grupo_loggrupofuncao FOREIGN KEY (codgrupo) REFERENCES grupo(codgrupo) ON UPDATE RESTRICT ON DELETE RESTRICT;

ALTER TABLE ONLY log_grupo_funcao
    ADD CONSTRAINT fk_funcaosistema_loggrupofuncao FOREIGN KEY (codsistema, codfuncao) REFERENCES funcaosistema(codsistema, codfuncao) ON UPDATE RESTRICT ON DELETE RESTRICT;

ALTER TABLE ONLY log_usuario_grupo
    ADD CONSTRAINT fk_usuario_logusuariogrupo FOREIGN KEY (codusuario) REFERENCES usuario(codusuario) ON UPDATE RESTRICT ON DELETE RESTRICT;

ALTER TABLE ONLY log_usuario_grupo
    ADD CONSTRAINT fk_grupo_logusuariogrupo FOREIGN KEY (codgrupo) REFERENCES grupo(codgrupo) ON UPDATE RESTRICT ON DELETE RESTRICT;

ALTER TABLE ONLY log_usuario_grupo
    ADD CONSTRAINT fk_usuario_autorlogusuariogrupo FOREIGN KEY (autor) REFERENCES usuario(codusuario) ON UPDATE RESTRICT ON DELETE RESTRICT;

ALTER TABLE ONLY log_grupo_funcao
    ADD CONSTRAINT fk_usuario_autorloggrupofuncao FOREIGN KEY (autor) REFERENCES usuario(codusuario) ON UPDATE RESTRICT ON DELETE RESTRICT;

ALTER TABLE ONLY log_grupo_sistema
    ADD CONSTRAINT fk_grupo_loggruposistema FOREIGN KEY (codgrupo) REFERENCES grupo(codgrupo) ON UPDATE RESTRICT ON DELETE RESTRICT;

ALTER TABLE ONLY log_grupo_sistema
    ADD CONSTRAINT fk_sistema_loggruposistema FOREIGN KEY (codsistema) REFERENCES sistema(codsistema) ON UPDATE RESTRICT ON DELETE RESTRICT;

ALTER TABLE ONLY log_grupo_sistema
    ADD CONSTRAINT fk_usuario_autorloggruposistema FOREIGN KEY (autor) REFERENCES usuario(codusuario) ON UPDATE RESTRICT ON DELETE RESTRICT;
    
ALTER TABLE ONLY restricaoipgrupo
	ADD CONSTRAINT fk_gruposistema_restricaoipgrupo FOREIGN KEY (codgrupo, codsistema) REFERENCES gruposistema (codgrupo, codsistema) ON UPDATE RESTRICT ON DELETE RESTRICT;

ALTER TABLE ONLY restricaoipgrupo
	ADD CONSTRAINT fk_restricaoip_restricaoipgrupo FOREIGN KEY (codrestricaoip) REFERENCES restricaoip (codrestricaoip) ON UPDATE RESTRICT ON DELETE RESTRICT;

ALTER TABLE ONLY restricaoipsistema
	ADD CONSTRAINT fk_restricaoip_restricaoipsistema FOREIGN KEY (codrestricaoip) REFERENCES restricaoip (codrestricaoip) ON UPDATE RESTRICT ON DELETE RESTRICT;

ALTER TABLE ONLY restricaoipsistema
	ADD CONSTRAINT fk_sistema_restricaoipsistema FOREIGN KEY (codsistema) REFERENCES sistema (codsistema) ON UPDATE RESTRICT ON DELETE RESTRICT;



SELECT pg_catalog.setval('auditoriacontrole_codauditoria_seq', 100, true);

SELECT pg_catalog.setval('enderecoservidor_codservidor_seq', 100, true);

SELECT pg_catalog.setval('excecao_codexcecao_seq', 100, true);

SELECT pg_catalog.setval('funcaosistema_codfuncao_seq', 1000, true);

SELECT pg_catalog.setval('funcaosistemaauxiliar_codfuncaoauxiliar_seq', 100, true);

SELECT pg_catalog.setval('grupo_codgrupo_seq', 10, true);

SELECT pg_catalog.setval('logauditoria_codlog_seq', 100, true);

SELECT pg_catalog.setval('mensagem_idmensagem_seq', 100, false);

SELECT pg_catalog.setval('restricaofuncao_codrestricaofuncao_seq', 100, true);

SELECT pg_catalog.setval('restricaogrupo_codrestricaogrupo_seq', 100, true);

SELECT pg_catalog.setval('restricaohorario_codrestricao_seq', 100, true);

SELECT pg_catalog.setval('restricaosistema_codrestricaosistema_seq', 100, true);

SELECT pg_catalog.setval('sistema_codsistema_seq', 10, true);

SELECT pg_catalog.setval('usuario_codusuario_seq', 10, true);

SELECT pg_catalog.setval('loglogin_codlog_seq', 100, true);

SELECT pg_catalog.setval('logusuariogrupo_codlog_seq', 100, true);

SELECT pg_catalog.setval('loggrupofuncao_codlog_seq', 100, true);

SELECT pg_catalog.setval('loggruposistema_codlog_seq', 100, true);



SET SESSION AUTHORIZATION 'postgres';

COMMENT ON SCHEMA public IS 'Standard public schema';


SET SESSION AUTHORIZATION DEFAULT;

COMMENT ON DATABASE pinhao IS 'Banco de dados do sistema sentinela';


SET SESSION AUTHORIZATION 'sa_sentinela';

COMMENT ON SCHEMA sentinela IS 'Standard sentinela schema';


-- AJUSTES DA VERSÿO 1.4.3
ALTER TABLE sentinela.sentinelaparametros ADD COLUMN gruporaiz int4;

UPDATE sentinela.sentinelaparametros set gruporaiz = 1;

UPDATE sentinela.grupo SET codgrupomanutencao = 1 WHERE codgrupomanutencao IS NULL;
UPDATE sentinela.grupo SET codgrupomanutencao = 1 WHERE codgrupomanutencao = codgrupo;
UPDATE sentinela.grupo SET codgrupomanutencao = 1 WHERE codgrupomanutencao = 0;

ALTER TABLE sentinela.funcaosistema ADD COLUMN ativo bool DEFAULT true NOT NULL;
ALTER TABLE sentinela.funcaosistema ADD COLUMN logativo bool DEFAULT true NOT NULL;
ALTER TABLE sentinela.grupo ADD COLUMN ativo bool DEFAULT true NOT NULL;
ALTER TABLE sentinela.sistema ADD COLUMN ativo bool DEFAULT true NOT NULL;

-- **************************
-- CRIANDO TRIGGERS_FUNCTIONS
-- **************************

CREATE OR REPLACE FUNCTION sentinela.update_cache_sistema() RETURNS "trigger" AS $update_cache_sistema$
    DECLARE
	codsis integer;
    BEGIN
		IF (TG_OP = 'DELETE') THEN
			codsis = OLD.codsistema;
		ELSE
			codsis = NEW.codsistema;
		END IF;
		IF EXISTS (SELECT * FROM sentinela.cachesistema WHERE codsistema=codsis) THEN
			UPDATE sentinela.cachesistema SET ultimaatualizacao = CURRENT_TIMESTAMP 
			WHERE codsistema=codsis;
		ELSE
			INSERT INTO sentinela.cachesistema (codsistema, ultimaatualizacao) VALUES (codsis, CURRENT_TIMESTAMP);
		END IF;
		RETURN NULL;
    END;
$update_cache_sistema$ LANGUAGE 'plpgsql';

CREATE OR REPLACE FUNCTION sentinela.update_cache_usuario() RETURNS "trigger" AS $update_cache_usuario$
    DECLARE
	codusu integer;
    BEGIN
	IF (TG_OP = 'DELETE') THEN
		codusu = OLD.codusuario;
	ELSE
		codusu = NEW.codusuario;
	END IF;
		IF EXISTS (SELECT * FROM sentinela.cacheusuario WHERE codusuario=codusu) THEN
			UPDATE sentinela.cacheusuario SET ultimaatualizacao = CURRENT_TIMESTAMP 
			WHERE codusuario=codusu;
		ELSE
			INSERT INTO sentinela.cacheusuario (codusuario, ultimaatualizacao) VALUES (codusu, CURRENT_TIMESTAMP);
		END IF;
		RETURN NULL;
    END;
$update_cache_usuario$ LANGUAGE 'plpgsql';

CREATE OR REPLACE FUNCTION sentinela.update_cache_usuariosistema() RETURNS "trigger" AS $update_cache_usuariosistema$
    DECLARE
	codsis integer;
    BEGIN
		IF (TG_OP = 'DELETE') THEN
			codsis = OLD.codsistema;
		ELSE
			codsis = NEW.codsistema;
		END IF;
		IF EXISTS (SELECT * FROM sentinela.cacheusuariosistema WHERE codsistema=codsis) THEN
			UPDATE sentinela.cacheusuariosistema SET ultimaatualizacao = CURRENT_TIMESTAMP 
			WHERE codsistema=codsis;
		ELSE
			INSERT INTO sentinela.cacheusuariosistema (codsistema, ultimaatualizacao) VALUES (codsis, CURRENT_TIMESTAMP);
		END IF;
		RETURN NULL;
    END;
$update_cache_usuariosistema$ LANGUAGE 'plpgsql';

-- ****************
-- CRIANDO TRIGGERS
-- ****************

-- *** IMPACTO NO RELOAD DE CONTEXTO (Usuário) ***
--- trigger para a tabela usuario
CREATE TRIGGER trigger_usuario_cache AFTER INSERT OR UPDATE ON sentinela.usuario 
  FOR EACH ROW EXECUTE PROCEDURE sentinela.update_cache_usuario();
  
--- trigger para a tabela usuariogrupo
CREATE TRIGGER trigger_usuariogrupo_cache AFTER INSERT OR UPDATE OR DELETE ON sentinela.usuariogrupo 
  FOR EACH ROW EXECUTE PROCEDURE sentinela.update_cache_usuario();
  
-- *** IMPACTO NO RELOAD DE FUNÿÿES (Sistema) ***
-- trigger para a tabela sistema
CREATE TRIGGER trigger_sistema_cache AFTER INSERT OR UPDATE ON sentinela.sistema 
  FOR EACH ROW EXECUTE PROCEDURE sentinela.update_cache_sistema();

  --- trigger para a tabela enderecoservidor
CREATE TRIGGER trigger_enderecoservidor_cache AFTER INSERT OR UPDATE OR DELETE ON sentinela.enderecoservidor 
  FOR EACH ROW EXECUTE PROCEDURE sentinela.update_cache_sistema();
  
  --- trigger para a tabela excecao
CREATE TRIGGER trigger_excecao_cache AFTER INSERT OR UPDATE OR DELETE ON sentinela.excecao 
  FOR EACH ROW EXECUTE PROCEDURE sentinela.update_cache_sistema();
  
  --- trigger para a tabela funcaosistema
CREATE TRIGGER trigger_funcaosistema_cache AFTER INSERT OR UPDATE OR DELETE ON sentinela.funcaosistema 
  FOR EACH ROW EXECUTE PROCEDURE sentinela.update_cache_sistema();  
  
  --- trigger para a tabela funcaosistemaauxiliar
CREATE TRIGGER trigger_funcaosistemaauxiliar_cache AFTER INSERT OR UPDATE OR DELETE ON sentinela.funcaosistemaauxiliar
  FOR EACH ROW EXECUTE PROCEDURE sentinela.update_cache_sistema();

  --- trigger para a tabela iconefuncao
CREATE TRIGGER trigger_iconefuncao_cache AFTER INSERT OR UPDATE OR DELETE ON sentinela.iconefuncao 
  FOR EACH ROW EXECUTE PROCEDURE sentinela.update_cache_sistema();
      
-- *** IMPACTO EM AMBOS OS RELOADS ***
  --- triggers para a tabela funcaogruposistema
CREATE TRIGGER trigger_funcaogruposistema_cache AFTER INSERT OR UPDATE OR DELETE ON sentinela.funcaogruposistema 
  FOR EACH ROW EXECUTE PROCEDURE sentinela.update_cache_usuariosistema();

--- triggers para a tabela gruposistema
CREATE TRIGGER trigger_gruposistema_cache AFTER INSERT OR UPDATE OR DELETE ON sentinela.gruposistema 
  FOR EACH ROW EXECUTE PROCEDURE sentinela.update_cache_usuariosistema();
  
  --- triggers para a tabela restricaohorario 
CREATE TRIGGER trigger_restricaohorario_cache AFTER INSERT OR UPDATE OR DELETE ON sentinela.restricaohorario 
  FOR EACH ROW EXECUTE PROCEDURE sentinela.update_cache_usuariosistema();
  
  --- triggers para a tabela restricaoipgrupo 
CREATE TRIGGER trigger_restricaoipgrupo_cache AFTER INSERT OR UPDATE OR DELETE ON sentinela.restricaoipgrupo 
  FOR EACH ROW EXECUTE PROCEDURE sentinela.update_cache_usuariosistema();
  
  --- triggers para a tabela restricaoipsistema
CREATE TRIGGER trigger_restricaoipsistema_cache AFTER INSERT OR UPDATE OR DELETE ON sentinela.restricaoipsistema 
  FOR EACH ROW EXECUTE PROCEDURE sentinela.update_cache_usuariosistema();     
    
  --- triggers para a tabela sentinelaparametros
CREATE TRIGGER trigger_sentinelaparametros_cache AFTER INSERT OR UPDATE OR DELETE ON sentinela.sentinelaparametros 
  FOR EACH ROW EXECUTE PROCEDURE sentinela.update_cache_usuariosistema();




---- v1.4.5/script-alteracao


-- *****************
-- ALTERANDO TABELAS
-- *****************

-- Alteração do tamanho dos campos abaixo: 
ALTER TABLE excecao ALTER COLUMN nomeexcecao TYPE VARCHAR(250);
ALTER TABLE excecao ALTER COLUMN descexcecao TYPE VARCHAR(250);
ALTER TABLE funcaosistema ALTER COLUMN descrfuncao TYPE VARCHAR(250);
ALTER TABLE funcaosistemaauxiliar ALTER COLUMN descfuncao TYPE VARCHAR(250);

-- Adição da coluna abaixo: 
ALTER TABLE grupo ADD COLUMN grupoadm BOOLEAN;

-- Setar flag 'grupoadm' como 'true' em todos os grupos com vínculo ao Sentinela
UPDATE grupo SET grupoadm=false;

UPDATE grupo SET grupoadm=true WHERE codgrupo 
IN (SELECT g.codgrupo FROM grupo g, gruposistema gs 
WHERE gs.codgrupo=g.codgrupo AND gs.codsistema 
IN (SELECT codsistema FROM sistema WHERE siglasistema='SEN'));


-- ************************
-- TRATAMENTO DE PARAMETROS
-- ************************

-- Criação da sequence
CREATE SEQUENCE funcaosistemaparametro_codparametro_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 1
  CACHE 1;
ALTER TABLE funcaosistemaparametro_codparametro_seq OWNER TO sa_sentinela;

-- Criação da tabela
CREATE TABLE funcaosistemaparametro
(
  codparametro int4 NOT NULL DEFAULT nextval(('sentinela.funcaosistemaparametro_codparametro_seq'::text)::regclass),
  codsistema int4 NOT NULL,
  codfuncao int4 NOT NULL,
  nomeparametro varchar(40),
  valorparametro varchar(20),
  CONSTRAINT pk_funcaosistemaparametro PRIMARY KEY (codsistema, codfuncao, codparametro),
  CONSTRAINT fk_funcaosistema_funcaosistemaparametro FOREIGN KEY (codsistema, codfuncao) REFERENCES funcaosistema (codsistema, codfuncao) ON UPDATE NO ACTION ON DELETE NO ACTION
) 
WITHOUT OIDS;
ALTER TABLE funcaosistemaparametro OWNER TO sa_sentinela;
GRANT ALL ON TABLE funcaosistemaparametro TO sa_sentinela;
GRANT SELECT ON TABLE funcaosistemaparametro TO sa_sentinela_client;

-- Criação da trigger
CREATE TRIGGER trigger_funcaosistemaparametro_cache
  AFTER INSERT OR UPDATE OR DELETE
  ON funcaosistemaparametro
  FOR EACH ROW
  EXECUTE PROCEDURE update_cache_sistema();



---- v1.4.5/script-ajustes

-- Definir como grupos administradores os grupos
-- que não estejam associados ao sistema Sentinela,
-- porém que possuam grupos a manter (grupos filhos).  

UPDATE grupo SET grupoadm=true WHERE codgrupo 
IN (SELECT codgrupo FROM grupo WHERE codgrupo 
IN (SELECT codgrupomanutencao FROM grupo) 
AND grupoadm=false);


-- Desvincular os grupos de usuários inativos --

DELETE FROM usuariogrupo WHERE codusuario IN(SELECT codusuario FROM usuario WHERE indicativousuarioativo=false);



---- v1.4.6/script-alteraçoes-1.4.6.sql

insert into metodo (nomemetodo, descmetodo) values ('incluirUsuario', 'Realiza a inclusão de um usuário no Sentinela.');
insert into metodo (nomemetodo, descmetodo) values ('incluirGrupoVinculado', 'Realiza a inclusão de um grupo, vinculado ao sistema logado, no Sentinela.');

GRANT SELECT, INSERT, UPDATE ON TABLE grupo TO sa_sentinela_client;
GRANT SELECT, insert, delete ON TABLE gruposistema TO sa_sentinela_client;

GRANT SELECT, UPDATE, INSERT ON TABLE loggruposistema_codlog_seq TO sa_sentinela_client;
GRANT SELECT, UPDATE, INSERT ON TABLE log_grupo_sistema TO sa_sentinela_client;
GRANT SELECT, UPDATE, INSERT ON TABLE grupo_codgrupo_seq TO sa_sentinela_client;
GRANT SELECT, UPDATE, INSERT ON TABLE usuario_codusuario_seq TO sa_sentinela_client;

---- v1.4.6/script-log.sql


-- DROP TABLE log_alteracao_grupo;

CREATE TABLE log_alteracao_grupo
(
  codalteracao int4 NOT NULL DEFAULT nextval(('logalteracaogrupo_codalteracao_seq'::text)::regclass),
  codgrupo int4 NOT NULL,
  nomegrupo varchar(127),
  descrgrupo varchar(255),
  codgrupomanutencao int4,
  infoprivilegiadas bool,
  grupomodelo bool,
  ativo bool NOT NULL,
  grupoadm bool,
  codautor int4 NOT NULL,
  datahoraalteracao timestamp,
  ipautor varchar(15),
  interfaceacesso varchar DEFAULT 255,
  codsistema int4 NOT NULL,
  CONSTRAINT pk_alteracao_grupo PRIMARY KEY (codalteracao),
  CONSTRAINT fk_codgrupo FOREIGN KEY (codgrupo)
      REFERENCES grupo (codgrupo) MATCH FULL
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_codsistema FOREIGN KEY (codsistema)
      REFERENCES sistema (codsistema) MATCH FULL
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_codusuario_alterador FOREIGN KEY (codautor)
      REFERENCES usuario (codusuario) MATCH FULL
      ON UPDATE NO ACTION ON DELETE NO ACTION
) 
WITHOUT OIDS;
ALTER TABLE log_alteracao_grupo OWNER TO sa_sentinela;
GRANT ALL ON TABLE log_alteracao_grupo TO sa_sentinela;
GRANT ALL ON TABLE log_alteracao_grupo TO sa_sentinela_client;

-- Table: log_alteracao_usuario

-- DROP TABLE log_alteracao_usuario;

CREATE TABLE log_alteracao_usuario
(
  codalteracao int4 NOT NULL DEFAULT nextval(('sentinela.logalteracaousuario_codalteracao_seq'::text)::regclass),
  codusuario int4 NOT NULL,
  nomeusuario varchar(60),
  emailusuario varchar(50),
  identidadeusuario varchar(10),
  cpfusuario varchar(11),
  datacadastrousuario date,
  tentativassenhaerrada int4,
  senhausuario varchar(100),
  datatrocasenha date,
  telefone varchar(20),
  datahorasenhaerrada timestamp,
  indicativousuarioativo bool,
  root bool,
  indicativobloqueio bool,
  loginusuario varchar(40),
  codautor int4 NOT NULL,
  datahoraalteracao timestamp,
  ipautor varchar(15),
  interfaceacesso varchar DEFAULT 255,
  codsistema int4 NOT NULL,
  CONSTRAINT pk_alteracao_usuario PRIMARY KEY (codalteracao),
  CONSTRAINT fk_codsistema FOREIGN KEY (codsistema)
      REFERENCES sistema (codsistema) MATCH FULL
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_codusuario FOREIGN KEY (codusuario)
      REFERENCES usuario (codusuario) MATCH FULL
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_codusuario_alterador FOREIGN KEY (codautor)
      REFERENCES usuario (codusuario) MATCH FULL
      ON UPDATE NO ACTION ON DELETE NO ACTION
) 
WITHOUT OIDS;

ALTER TABLE log_alteracao_usuario OWNER TO sa_sentinela;
GRANT ALL ON TABLE log_alteracao_usuario TO sa_sentinela;
GRANT ALL ON TABLE log_alteracao_usuario TO sa_sentinela_client;


-- Sequence: logalteracaogrupo_codalteracao_seq

-- DROP SEQUENCE logalteracaogrupo_codalteracao_seq;

CREATE SEQUENCE logalteracaogrupo_codalteracao_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 127
  CACHE 1
  CYCLE;
ALTER TABLE logalteracaogrupo_codalteracao_seq OWNER TO sa_sentinela;
GRANT ALL ON TABLE logalteracaogrupo_codalteracao_seq TO sa_sentinela;
GRANT ALL ON TABLE logalteracaogrupo_codalteracao_seq TO sa_sentinela_client;


-- Sequence: logalteracaousuario_codalteracao_seq

-- DROP SEQUENCE logalteracaousuario_codalteracao_seq;

CREATE SEQUENCE logalteracaousuario_codalteracao_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 16691
  CACHE 1
  CYCLE;

ALTER TABLE logalteracaousuario_codalteracao_seq OWNER TO sa_sentinela;
GRANT ALL ON TABLE logalteracaousuario_codalteracao_seq TO sa_sentinela;
GRANT ALL ON TABLE logalteracaousuario_codalteracao_seq TO sa_sentinela_client;

---- v1.4.7/script-alteracao-147

INSERT INTO metodo (nomemetodo, descmetodo) VALUES ('alterarUsuario', 'Realiza a alteração de um usuário.');
INSERT INTO metodo (nomemetodo, descmetodo) VALUES ('alterarSenha', 'Reinicializa a senha de um usuário.');
INSERT INTO metodo (nomemetodo, descmetodo) VALUES ('bloqueioUsuarioPorSistema', 'Bloqueia um usuário para o sistema hospedeiro logado.');
INSERT INTO metodo (nomemetodo, descmetodo) VALUES ('bloqueioUsuario', 'Bloqueia um usuário para o sentinela.');

---- v1.4.8/script-alteracao-v1.4.8

ALTER TABLE sentinela.usuario ALTER COLUMN identidadeusuario TYPE character varying(20);

ALTER TABLE sentinela.usuario ADD COLUMN orgaoexpedidor character varying(10);

ALTER TABLE sentinela.log_alteracao_usuario ALTER COLUMN identidadeusuario TYPE character varying(20);

ALTER TABLE sentinela.log_alteracao_usuario ADD COLUMN orgaoexpedidor character varying(10);

---- v1.4.9/scripts_1_4_9.sql
UPDATE sentinela.sentinelaparametros SET mensagemtrocasenha = 'Olá,

    Seus dados de acesso no sistema Sentinela (Desenvolvimento) foram alterados. Os dados corretos são:

    Usuário: %1
	Senha: %2
	
	É conveniente lembrar que esta senha pode ser alterada apenas nos sistemas aos quais você tenha acesso.
	
	Atenciosamente,
	
    Administrador Sentinela
    -----------------------';

